package cn.krund.lyc.hotlerobot.Ros.service;

import cn.krund.lyc.hotlerobot.Ros.common.entity.enums.RobotErrorInfo;
import cn.krund.lyc.hotlerobot.Ros.common.entity.enums.RobotFeedbackInfoType;

/**
 * @包名: cn.krund.lyc.hotlerobot.robot.service
 * @作者: 刘育成
 * @时间: 2018/3/27  10:39
 * @org: 克路德人工智能
 * @描述: TODO 与机器人通讯的触发事件监听
 * @fileName: ICommunicationListener
 */

public interface ICommunicationListener {
    /**
     * 链接成功
     */
    void onConnectComplete();

    /**
     * 链接断开
     */
    void onDisconnect();

    /**
     * 回馈信息
     *
     * @param feedbackType 回馈信息类型
     * @param isSucceed    发送的命令是否成功
     */
    void onFeedback(RobotFeedbackInfoType feedbackType, boolean isSucceed);

    /**
     * 回馈信息
     *
     * @param feedbackType 回馈信息类型
     * @param feedbackInfo 回馈信息
     */
    void onFeedback(RobotFeedbackInfoType feedbackType, Object feedbackInfo);

    void onFeedback(RobotFeedbackInfoType feedbackType, Object feedbackInfo, boolean isSucceed);

    /**
     * 机器人实时位置
     */
    void onRobotRealTimePos(float pointX, float pointY, float courseAngle);

    /**
     * 透传消息
     */
    void onOSPFInfo(byte[] data);

    /**
     * 机器人错误信息
     *
     * @param robotErrorInfo
     */
    void onErrorInfo(RobotErrorInfo robotErrorInfo);
}
